import axios from "axios";
//引入进度条
import nprogress from "nprogress";
//引入进度条样式
import "nprogress/nprogress.css";
//在当前模块中引入store
import store from "../store";
// 对axios二次封装
const requests = axios.create({
  baseURL: "/api",
  timeout: 5000,
});
// 配置请求拦截器
requests.interceptors.request.use((config) => {
  //config内主要是对请求头Header配置
  if (store.state.detail.uuid_token) {
    // 请求头添加一个字段(userTempId)
    config.headers.userTempId = store.state.detail.uuid_token;
  }
  // 需要携带token带给服务器
  if (store.state.user.token) {
    config.headers.token = store.state.user.token;
  }
  //开启进度条
  nprogress.start();
  return config;
});
// 配置相应拦截器
requests.interceptors.response.use(
  (res) => {
    //成功的回调函数

    //响应成功，关闭进度条
    nprogress.done();
    return res.data;
  },
  (error) => {
    //失败的回调函数
    console.log("响应失败" + error);
    return Promise.reject(new Error("fail"));
  }
);
// 对外暴露
export default requests;
